<?php
/**
 * Controller_Ajax_Message
 *
 * Класс Controller_Ajax_Message отвечает за обработку запросов связанных с сообщениями
 */
class Controller_Ajax_Message extends Controller_Ajax {

	/**
	 * (non-PHPdoc)
	 *
	 */
	public function actionSwitch() {
	  Service_Debug::setDebug();

		switch ($this->arrRequest[2]) {
			case 'mark_as_read':
				$objUser = User_User::getUser();
				if ($objUser->id) $this->actionMarkAsRead($objUser);
				else $this->setError(404);
				break;
			default: $this->setError(404);
 		}
	}

	
	/**
	 * Отметка прочтённого сообщения
	 *
	 */
	public function actionMarkAsRead($objUser) {
		Service_Debug::setDebug();
		$Id_message = isset($_POST['ID_message']) ? Service_Escape::absolutelyEscapeString($_POST['ID_message']) : '';
		
		if (empty($Id_message)) return $this->makeStandardError('Ошибка');
		
		$objMessage = new Message($Id_message);
		// Если передан id существующего сообщения, оно адресовано текущему пользователю и ещё не прочитано
		if ($objMessage->id && $objUser->id == $objMessage->getField('ID_user_to') && !$objMessage->getField('is_read_at')) {
			$objMessage->makeRead();
			$this->arrReturn = array('result' => 'OK', 'currentNumber' => $objUser->getField('new_messages') - 1);
		}
	}
}
?>